void destroy_LinkStack_2(PLinkStack S)
{
        if (isEmptyStack_link(S)) {
                free(S);
                return ;
        }
        PNode q;
        PNode tmp;
        q = S->top;
        while (q->next != NULL) {
                tmp = q->next;
                free(q);
                q = tmp;
        }
        free(q);
        free(S);
}